1. Field of the Invention
The present invention relates to computer implemented processes and apparatus for functionally enhancing software. Still more particularly, it relates to the use of object oriented programming techniques and objects to enhance procedural program code.
2. Background and Related Art
The functional enhancement of software has been a difficult problem as long as software has been developed. Enhancement of systems software such as an operating system or transaction processing system is even more difficult than enhancing application software. Systems software is typically complex with many interrelationships that must be preserved through any modification.
Object oriented programming techniques have been introduced to combat the problem of complexity in systems and application software. "Objects" encapsulate the behavior (methods or process) of an application and the data used by that application. Each object in the system contains both data and process code. Manipulation of object data can occur only by invocation of an object method.
Object oriented programs can be functionally enhanced by adding new objects that build on existing objects by adding or replacing function. New objects can inherit methods from existing function and by "overriding" the inherited methods, can change the function of the object.
Procedural languages, which make up the bulk of existing operating systems and application systems, are not as easily modified. Since the data and procedures have not been encapsulated, it is frequently difficult to ensure that all needed code locations have been changed and that the changes will not have an adverse impact on another section of the system.
Thus, the technical problem to be solved is to be able to apply object oriented programming techniques to procedural code in such a way that procedural code can be functionally enhanced without modifying the procedural code or the applications that use it.